using System;
using System.IO;
using Jandaya.Framework.Dialogs;
using Jandaya.Framework.Core.Pessoa;
using Jandaya.Framework.Core.Empresa;

namespace Jandaya.Client.Windows
{
	public partial class wndCadEmpresa : Gtk.Window
	{	
		
		public wndCadEmpresa () : base(Gtk.WindowType.Toplevel)
		{
			this.Build ();
		}
		
		protected override void OnShown ()
		{
			base.OnShown ();
			ntbEmpresa.CurrentPage = 0;			
			BindToGUI();
		}

				
		protected virtual void OnFileChooserSelectionChanged (object sender, System.EventArgs e)
		{
			if ((filechooser.Filename != string.Empty) && (File.Exists(filechooser.Filename))){
				imgLogo.Pixbuf = new Gdk.Pixbuf(filechooser.Filename);				
			}
		}		
		
		
		private bool IsRequiredFilled(){
			if (string.IsNullOrEmpty(etrNome.Text)){
				MsgDialog.ShowWarning("É preciso informar o nome da empresa.");
				return false;
			}
			
			if (string.IsNullOrEmpty(etrCNPJ.Text)){
				MsgDialog.ShowWarning("É preciso informar o CNPJ da empresa.");
				return false;
			}			
				
			return true;
		}
		
		private bool BindFromGUI(){
			if (!IsRequiredFilled())
				return false;
			App.Manager.Empresa.Nome = etrNome.Text;
			App.Manager.Empresa.NomeFantasia = etrNomeFantasia.Text;
			App.Manager.Empresa.RazaoSocial = etrRazaoSocial.Text;
			App.Manager.Empresa.CNPJ = etrCNPJ.Text;
			App.Manager.Empresa.InscricaoMunicipal = etrInscMunicipal.Text;
			App.Manager.Empresa.InscricaoEstadual = etrInscEstadual.Text;
			return true;
		}
		
		private void BindToGUI(){
			etrNome.Text = App.Manager.Empresa.Nome;
			etrNomeFantasia.Text = App.Manager.Empresa.NomeFantasia;
			etrRazaoSocial.Text = App.Manager.Empresa.RazaoSocial;
			etrCNPJ.Text = App.Manager.Empresa.CNPJ;
			etrInscEstadual.Text = App.Manager.Empresa.InscricaoEstadual;
			etrInscMunicipal.Text = App.Manager.Empresa.InscricaoMunicipal;
		}
		
		protected virtual void actSalvarActivated (object sender, System.EventArgs e)
		{
			if(BindFromGUI()){
				if (App.Manager.Empresa.Save()){
				}
			}
		}
		
		protected virtual void actNovoActivated (object sender, System.EventArgs e)
		{
		}
		
		
	}
}

